﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ALDIOrganizer
{

    
    /// <summary>
    /// 
    /// </summary>
    /// <remarks>
    /// "Any", "trainee", "manager" and "store_runner" values of this enumeration are used by tRota class
    /// - or the Template GetParent, where Shifts are not yet associated with any particular row yet.
    /// "Store_manager", "assistant_manager", "deputy" and "assistant" are used by the Employee class.
    /// Why so? 
    /// 1. No actual row will hold a _role of "any" - it will always be defined. 
    /// 2. He won't be a "trainee" either - if he'pShift off productivity, this information will be contained
    /// by the Employee.isOffProd bool. That'pShift because he (or she) can be a trainee manager, OR a trainee
    /// store assistant. 
    /// 
    /// When we're preparing a Template, we probably don't care if a person we want to run the store On Tuesday
    /// is a store manager or assistant manager. Hence both fall under the generic category of "manager".
    /// "Store_runner" is (any) manager, plus a store deputy..
    /// </remarks>
    [Flags]
    public enum Position : byte
    {
        None = 0,
        /// <summary>
        /// cover, a guest employee (from another store)
        /// </summary>
        /// <remarks>
        /// currently not used by the program
        /// </remarks>
        External = 1,
        /// <summary>
        /// employee on an off productivity contract
        /// </summary>
        Trainee = 2,
        /// <summary>
        /// store assistant
        /// </summary>
        StoreAssistant = 4,
        /// <summary>
        /// store deputy
        /// </summary>
        StoreDeputy = 8,
        /// <summary>
        /// assistant manager
        /// </summary>
        AssistantManager = 16,
        /// <summary>
        /// store manager
        /// </summary>
        StoreManager = 32
    }
}
